81 research outputs found
Comparator automata in quantitative verification
The notion of comparison between system runs is fundamental in formal
verification. This concept is implicitly present in the verification of
qualitative systems, and is more pronounced in the verification of quantitative
systems. In this work, we identify a novel mode of comparison in quantitative
systems: the online comparison of the aggregate values of two sequences of
quantitative weights. This notion is embodied by {\em comparator automata}
({\em comparators}, in short), a new class of automata that read two infinite
sequences of weights synchronously and relate their aggregate values.
We show that {aggregate functions} that can be represented with B\"uchi
automaton result in comparators that are finite-state and accept by the B\"uchi
condition as well. Such {\em -regular comparators} further lead to
generic algorithms for a number of well-studied problems, including the
quantitative inclusion and winning strategies in quantitative graph games with
incomplete information, as well as related non-decision problems, such as
obtaining a finite representation of all counterexamples in the quantitative
inclusion problem.
We study comparators for two aggregate functions: discounted-sum and
limit-average. We prove that the discounted-sum comparator is -regular
iff the discount-factor is an integer. Not every aggregate function, however,
has an -regular comparator. Specifically, we show that the language of
sequence-pairs for which limit-average aggregates exist is neither
-regular nor -context-free. Given this result, we introduce the
notion of {\em prefix-average} as a relaxation of limit-average aggregation,
and show that it admits -context-free comparators
A Semantics for Approximate Program Transformations
An approximate program transformation is a transformation that can change the
semantics of a program within a specified empirical error bound. Such
transformations have wide applications: they can decrease computation time,
power consumption, and memory usage, and can, in some cases, allow
implementations of incomputable operations. Correctness proofs of approximate
program transformations are by definition quantitative. Unfortunately, unlike
with standard program transformations, there is as of yet no modular way to
prove correctness of an approximate transformation itself. Error bounds must be
proved for each transformed program individually, and must be re-proved each
time a program is modified or a different set of approximations are applied. In
this paper, we give a semantics that enables quantitative reasoning about a
large class of approximate program transformations in a local, composable way.
Our semantics is based on a notion of distance between programs that defines
what it means for an approximate transformation to be correct up to an error
bound. The key insight is that distances between programs cannot in general be
formulated in terms of metric spaces and real numbers. Instead, our semantics
admits natural notions of distance for each type construct; for example,
numbers are used as distances for numerical data, functions are used as
distances for functional data, an polymorphic lambda-terms are used as
distances for polymorphic data. We then show how our semantics applies to two
example approximations: replacing reals with floating-point numbers, and loop
perforation
Euler: A System for Numerical Optimization of Programs
We give a tutorial introduction to Euler, a system for solving difficult optimization problems involving programs.National Science Foundation (U.S.) (Award 1156059)National Science Foundation (U.S.) (Award 1116362
Symbolic Quantum Simulation with Quasimodo
The simulation of quantum circuits on classical computers is an important
problem in quantum computing. Such simulation requires representations of
distributions over very large sets of basis vectors, and recent work has used
symbolic data-structures such as Binary Decision Diagrams (BDDs) for this
purpose. In this tool paper, we present Quasimodo, an extensible, open-source
Python library for symbolic simulation of quantum circuits. Quasimodo is
specifically designed for easy extensibility to other backends. Quasimodo
allows simulations of quantum circuits, checking properties of the outputs of
quantum circuits, and debugging quantum circuits. It also allows the user to
choose from among several symbolic data-structures -- both unweighted and
weighted BDDs, and a recent structure called Context-Free-Language Ordered
Binary Decision Diagrams (CFLOBDDs) -- and can be easily extended to support
other symbolic data-structures.Comment: 15 pages; 35th International Conference on Computer Aided
Verification (CAV 2023
- …